package com.yuelao.yuelao_backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuelao.yuelao_backend.dto.PostDTO;
import com.yuelao.yuelao_backend.entity.Topic;

import java.util.List;

/**
 * 话题Service
 */
public interface TopicService extends IService<Topic> {

    /**
     * 获取所有话题
     * @return 话题列表
     */
    List<Topic> getAllTopics();

    /**
     * 获取话题详情
     * @param topicId 话题ID
     * @return 话题详情
     */
    Topic getTopicDetail(Long topicId);

    /**
     * 创建话题
     * @param name 话题名称
     * @param description 话题描述
     * @param coverImage 封面图URL
     * @param createdBy 创建者ID
     * @return 是否成功
     */
    boolean createTopic(String name, String description, String coverImage, Long createdBy);

    /**
     * 获取话题下的动态
     * @param topicId 话题ID
     * @param page 页码
     * @param size 每页数量
     * @return 动态列表
     */
    List<PostDTO> getTopicPosts(Long topicId, int page, int size);

    /**
     * 加入话题
     * @param userId 用户ID
     * @param topicId 话题ID
     * @return 是否成功
     */
    boolean joinTopic(Long userId, Long topicId);
}

